The present invention relates to representation of graphically-rendered surfaces, and more particularly, to systems and methods for constructing a representation of a displacement-mapped surface.
Displacement mapping is a technique used to provide the appearance of shape, height, texture, and depth to graphically-rendered surfaces. Usually, the underlying surface is tessellated to provide a mesh or polygons, and subsequently a displacement mapping is applied to the tessellated mesh to form the final contour and orientation of the surface.
FIG. 1 illustrates a displacement-mapped surface known in the art. The displacement-mapped surface 100 is composed of multiple sections or “patches” 110, each section 110 including a plurality of tessellated polygons arranged in a mesh, whereby the number of tessellated polygons per section depends upon the viewpoint and complexity of the section 110. Some of the sections 110 are of low complexity, and thus have fewer tessellated polygons per section (e.g., 8 polygons×8 polygons), while some sections are of higher complexity, and have a greater number of tessellated polygons per section (e.g., 65 polygons×65 polygons).
In a conventional embodiment, each section 110 is represented using a predetermined number of “floats” (floating point numbers), the predetermined number being, for example, the number of floats needed for representing the most complex section, i.e., 65×65 or 4,225 floats (1 float per tessellated polygon of the 65×65 polygon section) in the illustrated representation. The number of sections 110 included within the surface 100 may be on the order of 100, 10,000, 100,000, 1,000,000 or more, and thus the host system must possess the memory capacity and bandwidth for processing a very large number of floats in order to represent the displacement-mapped surface 100, such an allocation increasing the cost of the host system.
What is needed is a more efficient technique for representing a displacement-mapped surface.